#!/bin/bash
# RagFlow 客户端安装脚本

echo "正在安装 RagFlow 客户端..."

# 检查 Python 是否已安装
if ! command -v python3 &> /dev/null; then
    echo "错误: 未检测到 Python3，请先安装 Python3"
    exit 1
fi

# 创建虚拟环境
echo "正在创建虚拟环境..."
python3 -m venv .venv

# 激活虚拟环境
echo "正在激活虚拟环境..."
source .venv/bin/activate

# 检查 uv 是否已安装
if ! command -v uv &> /dev/null; then
    echo "未检测到 uv 包管理器，尝试安装..."
    
    # 尝试使用 curl 安装 uv
    if command -v curl &> /dev/null; then
        echo "使用 curl 安装 uv..."
        curl -LsSf https://astral.sh/uv/install.sh | sh
        
        # 添加 uv 到 PATH
        export PATH="$HOME/.cargo/bin:$PATH"
    else
        echo "未检测到 curl，请先安装 uv 包管理器"
        echo "请访问 https://github.com/astral-sh/uv 获取安装指南"
        echo "安装完成后，请重新运行此脚本"
        exit 1
    fi
else
    echo "检测到 uv 已安装"
fi

# 询问是否使用国内源
echo "是否使用国内源安装依赖？(y/n)"
read use_cn_mirror

if [ "$use_cn_mirror" = "y" ] || [ "$use_cn_mirror" = "Y" ]; then
    # 使用国内源安装依赖
    echo "正在使用国内源安装项目依赖..."
    uv pip install --index-url https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt
    # 或者使用 uv sync 并配置国内源
    # 创建或更新 .uv/config.toml 文件
    mkdir -p .uv
    cat > .uv/config.toml << EOF
[index]
url = "https://mirrors.aliyun.com/pypi/simple/"
verify-ssl = true
EOF
    echo "已配置 uv 使用阿里云镜像源"
else
    # 使用默认源安装依赖
    echo "正在安装项目依赖..."
    uv sync
fi

echo "安装完成！"
echo "您可以通过以下命令启动 RagFlow 客户端："
echo "  python main.py"
echo "或者："
echo "  python run_gui.py"